Groovy তে exception handling একটি গুরুত্বপূর্ণ বিষয়, যা কোডের রানটাইম ত্রুটিগুলি সঠিকভাবে ধরতে এবং তা মোকাবেলা করতে সাহায্য করে। Groovy এর exception handling Java এর মতোই try
, catch
, এবং finally
ব্লক ব্যবহার করে কাজ করে। এই ব্লকগুলো ব্যবহার করে আমরা ত্রুটিগুলো ধরতে, সেগুলি মোকাবেলা করতে এবং কিছু কার্যক্রম চালিয়ে যেতে পারি।
try
ব্লক ব্যবহার করা হয় যেখানে আপনি কোড চালানোর সময় যে কোনো ত্রুটি (exception) হতে পারে, এমন কোড লিখেন। যদি try
ব্লকের মধ্যে কোনো ত্রুটি ঘটে, তাহলে তা catch
ব্লক দ্বারা ধরা হয়।
try {
def result = 10 / 0 // Divide by zero, which will throw an exception
} catch (ArithmeticException e) {
println "An error occurred: ${e.message}"
}
এখানে, Divide by zero ত্রুটির কারণে একটি ArithmeticException
ঘটবে।
catch
ব্লকটি ত্রুটি ঘটলে try ব্লকের পরপরই চলে আসে এবং ত্রুটির ধরন অনুযায়ী এটি কাজ করে। আপনি এখানে Exception এর ধরন স্পেসিফাই করতে পারেন, যাতে শুধু নির্দিষ্ট ধরনের ত্রুটি ধরা হয়।
try {
def result = 10 / 0 // Divide by zero error
} catch (ArithmeticException e) {
println "Caught an exception: ${e.class.simpleName}"
} catch (Exception e) {
println "Caught a general exception: ${e.message}"
}
এখানে, ArithmeticException প্রথমে ধরা হবে এবং যদি অন্য কোনো ত্রুটি ঘটে, তাহলে সেকেন্ড catch
ব্লক কাজ করবে।
finally
ব্লকটি এমন একটি ব্লক যা try এবং catch ব্লক শেষ হওয়ার পর অবশ্যই চালানো হয়, चाहे ত্রুটি ঘটুক বা না ঘটে। এটি সাধারণত সংস্থান মুক্তি (resource release), লগিং অথবা ক্লিনআপ অপারেশন করার জন্য ব্যবহার করা হয়।
try {
println "Trying to open a file"
// Some code that could throw an exception
} catch (Exception e) {
println "Caught exception: ${e.message}"
} finally {
println "This will always run, regardless of exception"
}
এখানে, finally
ব্লকটি কোডের সব পরিস্থিতিতে চলবে, ত্রুটি ঘটুক বা না ঘটুক।
Groovy তে আপনি একাধিক catch
ব্লক ব্যবহার করতে পারেন, যাতে আপনি বিভিন্ন ধরনের exception আলাদা ভাবে হ্যান্ডল করতে পারেন।
try {
// Some code that could throw multiple exceptions
def result = 10 / 0 // Division by zero
def file = new File("nonexistentfile.txt")
file.text = "Writing to a nonexistent file"
} catch (ArithmeticException e) {
println "Arithmetic error: ${e.message}"
} catch (FileNotFoundException e) {
println "File not found error: ${e.message}"
} catch (Exception e) {
println "General error: ${e.message}"
}
এখানে, যদি ArithmeticException বা FileNotFoundException ঘটে, তখন সেই ধরনের ত্রুটি হ্যান্ডল হবে। যদি অন্য কোনো ত্রুটি ঘটে, তবে তা সাধারণ Exception
ব্লক দ্বারা ধরা হবে।
Groovy তে, আপনি যদি কোনো ত্রুটি throw করতে চান, তবে তা throw
স্টেটমেন্ট ব্যবহার করে করা যেতে পারে। এটি একটি exception তৈরি করে এবং সেটি caller method বা code block এ propagate (পাঠানো) করে।
def divide(a, b) {
if (b == 0) {
throw new ArithmeticException("Division by zero is not allowed")
}
return a / b
}
try {
def result = divide(10, 0)
println "Result: $result"
} catch (ArithmeticException e) {
println "Caught exception: ${e.message}"
}
এখানে, divide
মেথডের মধ্যে যদি শূন্য দিয়ে ভাগ করার চেষ্টা করা হয়, তবে একটি ArithmeticException
থ্রো হবে, এবং তা catch
ব্লক দ্বারা ধরা হবে।
Groovy তে exception handling একটি শক্তিশালী ফিচার, যা কোডের ত্রুটিগুলি সঠিকভাবে ধরতে এবং তা মোকাবেলা করতে সাহায্য করে। আপনি try
, catch
, এবং finally
ব্লক ব্যবহার করে ত্রুটির ধরন অনুযায়ী সঠিক ব্যবস্থা নিতে পারেন। Groovy এর exception handling সহজ এবং কার্যকরী, যা ডেভেলপারদের কোডে ত্রুটি মোকাবেলা করতে দ্রুত এবং সুবিধাজনক উপায় প্রদান করে।
common.read_more